package com.ruoyi.alarm.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ruoyi.alarm.domain.AjtAlarmData;

/**
 * 预警信息Service接口
 * 
 * @author ruoyi
 * @date 2025-03-30
 */
public interface IAjtAlarmDataService 
{
    /**
     * 查询预警信息
     * 
     * @param id 预警信息主键
     * @return 预警信息
     */
    public AjtAlarmData selectAjtAlarmDataById(Long id);

    /**
     * 查询预警信息列表
     * 
     * @param ajtAlarmData 预警信息
     * @return 预警信息集合
     */
    public List<AjtAlarmData> selectAjtAlarmDataList(AjtAlarmData ajtAlarmData);

    /**
     * 新增预警信息
     * 
     * @param ajtAlarmData 预警信息
     * @return 结果
     */
    public int insertAjtAlarmData(AjtAlarmData ajtAlarmData);

    /**
     * 修改预警信息
     * 
     * @param ajtAlarmData 预警信息
     * @return 结果
     */
    public int updateAjtAlarmData(AjtAlarmData ajtAlarmData);

    /**
     * 批量删除预警信息
     * 
     * @param ids 需要删除的预警信息主键集合
     * @return 结果
     */
    public int deleteAjtAlarmDataByIds(Long[] ids);

    /**
     * 删除预警信息信息
     * 
     * @param id 预警信息主键
     * @return 结果
     */
    public int deleteAjtAlarmDataById(Long id);

    /**
     * 统计里程数
     * @param limit 统计的记录数
     * @return 统计结果
     */
    List<Map<String, Object>> statisticsMileage(int limit);

    /**
     * 统计最近7天内报警次数最多的前10个车辆
     * @param startTime 开始时间
     * @return 报警数据列表
     */
    public List<Map<String, Object>> getTop10AlarmVehiclesInLastDays(Date startTime);
}
